//  [9/16/2013 OMEGA] created

#ifndef _DUELASSEEDITARCHIVEOFGROUPCMD_H_
#define _DUELASSEEDITARCHIVEOFGROUPCMD_H_

#include <QtWidgets/QUndoCommand>
#include <QMap>
#include "DuelAssECommon.h"
#include "DuelAssECommand.h"

class DAssEAttachArchiveToGroupCmd : public DAssECommand
{
public:
	DAssEAttachArchiveToGroupCmd(DAssEWorkbench* workbench, QUndoCommand* parent,
		const QString& grpName,
		const QStringList& addedArchs);
	virtual	~DAssEAttachArchiveToGroupCmd();

	virtual void	redo();
	virtual void	undo();

protected:
	DuelAssetEditor*	mParent;
	QString				mTargetGroupName;
	QStringList			mAddedArchs;
};


class DAssEDetachArchiveFromGroupCmd : public DAssECommand
{
public:
	DAssEDetachArchiveFromGroupCmd(DAssEWorkbench* workbench, QUndoCommand* parent,
		const QString& grpName,
		const QStringList& removedArchs);
	virtual ~DAssEDetachArchiveFromGroupCmd();

	virtual void	redo();
	virtual void	undo();

protected:
	DuelAssetEditor*	mParent;
	QString				mTargetGroupName;
	QStringList			mRemovedArchs;
	QMap<QString, QUndoCommand*>	mUndeclareResCmdMap;
};

// 
// class DAssEEditArchiveOfGroupCmd : public DAssECommand
// {
// public:
// 	DAssEEditArchiveOfGroupCmd(DAssEWorkbench* workbench, QUndoCommand* parent,
// 		const QString& grpName,
// 		const QStringList& addedArchs, 
// 		const QStringList& removedArchs);
// 
// 
// 	virtual void	redo();
// 	virtual void	undo();
// 
// protected:
// 	DAssEAttachArchiveToGroupCmd		mAddCmd;
// 	DAssEDetachArchiveFromGroupCmd	mRemoveCmd;
// };


#endif